!(function (e, t) {
  "object" == typeof exports && "undefined" != typeof module
    ? (module.exports = t())
    : "function" == typeof define && define.amd
    ? define(t)
    : ((e = "undefined" != typeof globalThis ? globalThis : e || self).WwLogin =
        t());
})(this, function () {
  "use strict";
  var e = ["work.weixin.qq.com", "tencent.com"],
    t = {
      sso: "/wwopen/sso/qrConnect",
      tww: "/login/wwLogin/sso/qrConnect",
      native: "/native/sso/qrConnect",
      twxg: "/login/wwLogin/sso/qrConnect",
    },
    n = "1.2.7";
  return (function () {
    function o(e) {
      (this.options = e), (this.options = e), this.createFrame();
    }
    return (
      (o.prototype.destroyed = function () {
        console.log("WwLogin had destroyed."),
          window.removeEventListener("message", this.onPostMessage);
      }),
      (o.prototype.getUrl = function (e) {
        var o = [];
        Object.keys(e).forEach(function (t) {
          var n = e[t];
          [void 0, null].indexOf(n) > -1 ||
            (-1 !== ["string", "number", "boolean"].indexOf(typeof n) &&
              "id" !== t &&
              o.push("".concat(t, "=").concat(n)));
        }),
          o.push("version=".concat(n)),
          o.push("login_type=jssdk");
        var s = t[e.business_type || "sso"];
        if (!s)
          throw new Error(
            "Argument business_type not match. Current version is ".concat(
              n,
              "."
            )
          );
        var i = "https://open.work.weixin.qq.com";
        return (
          /tencent\.com$/.test(window.location.host) &&
            (i = "https://open.wecom.tencent.com"),
          "".concat(i).concat(s, "?").concat(o.join("&"))
        );
      }),
      (o.prototype.createFrame = function () {
        var e = this;
        if (this.options.is_mobile)
          window.location.href = this.getUrl(this.options);
        else {
          this.frame = document.createElement("iframe");
          var t = document.getElementById(this.options.id);
          (this.frame.src = this.getUrl(this.options)),
            (this.frame.frameBorder = "0"),
            (this.frame.allowTransparency = "true"),
            (this.frame.scrolling = "no"),
            (this.frame.width = "300px"),
            (this.frame.height = "400px"),
            (t.innerHTML = ""),
            t.appendChild(this.frame),
            (this.frame.onload = function () {
              e.frame.contentWindow.postMessage &&
                window.addEventListener &&
                (window.addEventListener("message", e.onPostMessage),
                e.frame.contentWindow.postMessage("ask_usePostMessage", "*"));
            });
        }
      }),
      (o.prototype.onPostMessage = function (t) {
        if (
          e.filter(function (e) {
            return new RegExp("".concat(e, "$")).test(t.origin);
          }).length
        ) {
          var n = t.data;
          n &&
            "string" == typeof n &&
            /^http/.test(n) &&
            (window.location.href = n);
        }
      }),
      o
    );
  })();
});
